package com.cybersapien.comng.engine.context;

import com.cybersapien.comng.engine.entity.IEntity;
import com.cybersapien.comng.engine.event.engine.IEventEngine;
import com.cybersapien.comng.engine.event.gui.IEventGUI;

public interface IContext {

	/* ===== Entities acces methods ===== */

	<ENTITY extends IEntity> ENTITY findEntity(String id, Class<ENTITY> type);

	void addEventEngine(IEventEngine event);

	void addEventGUI(IEventGUI event);

	IEventEngine currentEventEngine();

	boolean hasNextEventEngine();

	IEventEngine nextEventEngine();

	void release();

}
